home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_seeker.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  97 lines

  1. #ifndef __EWL_SEEKER_H__
  2. #define __EWL_SEEKER_H__
  3.  
  4. /**
  5.  * @file ewl_seeker.h
  6.  * @defgroup Ewl_Seeker Seeker: A Value Selector from a Range
  7.  * Defines an Ewl_Widget with a draggable button enclosed, used to select a
  8.  * value from a range.
  9.  *
  10.  * @{
  11.  * @todo Add value labels and hash marks.
  12.  */
  13.  
  14. /**
  15.  * @themekey /hseeker/file
  16.  * @themekey /hseeker/group
  17.  * @themekey /vseeker/file
  18.  * @themekey /vseeker/group
  19.  */
  20.  
  21. /**
  22.  * The Ewl_Seeker provides a means to select a value from a range using a
  23.  * draggable button.
  24.  */
  25. typedef struct Ewl_Seeker Ewl_Seeker;
  26.  
  27. /**
  28.  * @def EWL_SEEKER(seeker)
  29.  * Typecasts a pointer to an Ewl_Seeker pointer.
  30.  */
  31. #define EWL_SEEKER(seeker) ((Ewl_Seeker *) seeker)
  32.  
  33. /**
  34.  * @struct Ewl_Seeker
  35.  * Inherits from Ewl_Container and creates internal Ewl_Widget's to provide a
  36.  * range and a draggable area to select a value from that range.
  37.  */
  38. struct Ewl_Seeker
  39. {
  40.     Ewl_Container   container; /**< Inherit from Ewl_Container */
  41.     Ewl_Orientation orientation; /**< Indicates layout direction */
  42.     Ewl_Widget     *button; /**< Draggable widget for selecting value */
  43.     double          value; /**< Currently chosen value */
  44.     double          range; /**< Total selectable range */
  45.     double          step; /**< Size of increments in the range */
  46.     int             invert; /**< Invert the axis */
  47.     int             dragstart; /**< The coordinate where the drag starts */
  48.     int             autohide; /**< Indicator to hide when not scrollable */
  49.     Ecore_Timer    *timer; /**< Timer for scroll repeating */
  50.     double          start_time; /**< Time the timer was started */
  51. };
  52.  
  53. Ewl_Widget     *ewl_seeker_new(void);
  54. Ewl_Widget     *ewl_hseeker_new(void);
  55. Ewl_Widget     *ewl_vseeker_new(void);
  56. int             ewl_seeker_init(Ewl_Seeker *s);
  57.  
  58. void            ewl_seeker_orientation_set(Ewl_Seeker *s, Ewl_Orientation o);
  59. Ewl_Orientation ewl_seeker_orientation_get(Ewl_Seeker *s);
  60.  
  61. void            ewl_seeker_value_set(Ewl_Seeker *s, double v);
  62. double          ewl_seeker_value_get(Ewl_Seeker *s);
  63.  
  64. void            ewl_seeker_range_set(Ewl_Seeker *s, double r);
  65. double          ewl_seeker_range_get(Ewl_Seeker *s);
  66.  
  67. void            ewl_seeker_step_set(Ewl_Seeker *s, double step);
  68. double          ewl_seeker_step_get(Ewl_Seeker *s);
  69.  
  70. void            ewl_seeker_autohide_set(Ewl_Seeker *s, int v);
  71. int             ewl_seeker_autohide_get(Ewl_Seeker *s);
  72.  
  73. void            ewl_seeker_invert_set(Ewl_Seeker *s, int invert);
  74. int             ewl_seeker_invert_get(Ewl_Seeker *s);
  75.  
  76. void            ewl_seeker_decrease(Ewl_Seeker *s);
  77. void            ewl_seeker_increase(Ewl_Seeker *s);
  78.  
  79. /*
  80.  * Internally used callbacks, override at your own risk.
  81.  */
  82. void ewl_seeker_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  83. void ewl_seeker_button_mouse_down_cb(Ewl_Widget *w, void *ev_data,
  84.                         void *user_data);
  85. void ewl_seeker_button_mouse_up_cb(Ewl_Widget *w, void *ev_data,
  86.                           void *user_data);
  87. void ewl_seeker_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  88. void ewl_seeker_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  89. void ewl_seeker_mouse_up_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  90. void ewl_seeker_child_show_cb(Ewl_Container *p, Ewl_Widget * w);
  91.  
  92. /**
  93.  * @}
  94.  */
  95.  
  96. #endif                /* __EWL_SEEKER_H__ */
  97.